package demo.practice.leetcode_eveyday;

public class P738 {

    public static void main(String[] args) {
        P738 p738= new P738();
        p738.monotoneIncreasingDigits(120);
    }
    //12345 ->12345 一直单调递减的   无变化
    //35479 ->34999  某一个位置上  比后面这个位置上的数大   将该位置上的数  减1 将后面的位置上的数全部变为 9
    //55479 ->54999 ->49999 可以看到 上一步转化后，任然需要转化   之前最大的数 -1 然后其他的位置上的数  变为0
    public int monotoneIncreasingDigits(int N) {
        //char  本身的大小也能得到 数字的大小
        char[] chars = (N + "").toCharArray();

        int maxIndex=0;//记录最大的数
        for(int i=0;i<chars.length-1;i++){
            if(chars[i]>chars[maxIndex]){
                maxIndex=i;
            }

            if(  chars[i]>chars[i+1]){
                chars[maxIndex]--;
                for(int j=maxIndex+1;j<chars.length;j++){
                    chars[j]='9';
                }
                break;
            }


        }
        return Integer.parseInt(String.valueOf(chars));
    }
}
